iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
自我挑戰組

Angular 學徒之路 feat. TypeScript系列 第 29

Day 29:開始來學資料繫結:使用目前所學,來個簡單實作吧!(三)

  • 分享至 

  • xImage
  •  

我們前一篇,雖然有將需求二實作出來,但是看到 keyCode 已被淘汰的訊息,還是覺得有點不痛快。

上網搜尋了一下,找到一篇其他開發者分享的文章: [從 0 開始的 Angular 生活]No.16 實作練習,裡頭提到了另一種寫法,我們就參考裡頭的寫法並實作、改寫看看。

先到 HTML 來改寫一下,將原本的程式碼:

(keyup)="clearText($event)

改寫成如下:

(keydown.escape)="clearText($event)

這一段我們是使用 keydown 事件中的 escape property(也就是按下 esc 鍵的意思),來觸發 clearText 方法,此時我們會看到有錯誤訊息出現。

也就是 Event 型別的參數,無法指派給型別 KeyboardEvent

接著我們來到 AppComponent 改寫一下程式碼,將原本的型別從 KeyboardEvent 改成 Event

根據 MDN:KeyboardEvent 的資料顯示,KeyboardEvent 介面(interface)亦繼承其父, UIEventEvent 的 methods,有興趣理解的朋友,可以參考看看。

此時,HTML 的錯誤也消失了。

接著我們來完成 AppComponent 裡 clearText 方法的程式碼。

也就是當我們按下 esc 鍵時,input 的 value 會清空,value 的 length 也會歸零。

先來到網頁,輸入幾個字元,字元數計算的功能正確運作。

接著按下 esc 鍵,就可以看到 input 的內容確實被清空了,而字元數也變為 0 了。

以上,就是我們以前一篇寫法為基礎,修改而成,沒有錯誤的結果,供各位參考。

本篇寫法,如果有前輩、朋友能協助解釋,並且在現有寫法基礎下,提供修正的解法,還請不吝指教,謝謝!若我之後有找到想關的資訊、解法,也會更新在本文章中。

參考來源


上一篇
Day 28:開始來學資料繫結:使用目前所學,來個簡單實作吧!(二)
下一篇
Day 30:未完待續,不停地學習!
系列文
Angular 學徒之路 feat. TypeScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言